perm filename PROPSU[CHE,WD] blob
sn#026044 filedate 1973-02-15 generic text, type T, neo UTF8
00100 EXPR PROPSUBST(TERM,VAR,EXP);
00200 PROPSUBST1(TERM,VAR,EXP,MAKERNL(FREEVARS TERM,ALLVARS EXP));
00300
00400 EXPR PROPSUBST1(TERM,VAR,EXP,RNL);
00500 IF ATOM EXP
00600 THEN IF ISVAR EXP
00700 THEN IF EXP=VAR THEN TERM ELSE EXP
00800 ELSE EXP
00900 ELSE IF ¬ATOM CAR EXP ∧ ISQUANT CAAR EXP
01000 THEN IF CADAR EXP=VAR THEN EXP
01100 ELSE BEGIN SCALAR NEWNAM;
01200 NEWNAM←ASSOC(CADAR EXP,RNL);
01300 NEWNAM←IF NULL NEWNAM
01400 THEN CADAR EXP
01500 ELSE CDR NEWNAM;
01600 RETURN LIST(LIST(CAAR EXP,NEWNAM),
01700 PROPSUBST1(TERM,
01800 VAR,
01900 SUBST(NEWNAM,
02000 CADAR EXP,
02100 CADR EXP),
02200 RNL));
02300 END
02400 ELSE PROPSUBST1(TERM,VAR,CAR EXP,RNL)
02500 .PROPSUBSTL(TERM,VAR,CDR EXP,RNL);
02600
02700 EXPR PROPSUBSTL(TERM,VAR,EXPL,RNL);
02800 IF NULL EXPL THEN NIL ELSE
02900 PROPSUBST1(TERM,VAR,CAR EXPL,RNL).PROPSUBSTL(TERM,VAR,CDR EXPL,RNL);
03000